home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 04 - 1988 / 04.06 Jun 88 / serial demo / initprogram.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-05-02  |  3.1 KB  |  131 lines  |  [TEXT/PJMM]

  1.  
  2. UNIT initprogram;
  3.  
  4. INTERFACE
  5.  
  6.     USES
  7.         Globals, Misc;
  8.  
  9.     PROCEDURE initall;
  10.  
  11. IMPLEMENTATION
  12.  
  13.     PROCEDURE SetUpMenus;
  14.  
  15.         VAR
  16.             i : INTEGER;
  17.  
  18.     BEGIN
  19.         InitMenus; { initialize Menu Manager }
  20.         myMenus[applemenu] := GetMenu(appleMenu);
  21.         AddResMenu(myMenus[applemenu], 'DRVR'); { desk accessories }
  22.         myMenus[filemenu] := GetMenu(fileMenu);
  23.         myMenus[editMenu] := GetMenu(editMenu);
  24.         myMenus[baudMenu] := GetMenu(baudMenu);
  25.         myMenus[parityMenu] := GetMenu(parityMenu);
  26.         myMenus[bitsMenu] := GetMenu(bitsMenu);
  27.  
  28.         FOR i := applemenu TO lastMenu DO
  29.             InsertMenu(myMenus[i], 0);
  30.         DrawMenuBar;
  31.     END; { of SetUpMenus }
  32.  
  33. {---------------------- set up serial port parameters ------------------------}
  34.  
  35.     PROCEDURE Init_serial;
  36.  
  37.         VAR
  38.             errI : INTEGER;
  39.             Hand : SerShk;
  40.  
  41.     BEGIN
  42.  
  43.     { Pointers to buffers need to be set up - we are setting up for 2k and overriding 64 byte default }
  44.  
  45.         inBuffPtrA := NewPtr(inBuffLength);
  46.         filterBuffPtrA := NewPtr(1);
  47.         inBuffPtrB := NewPtr(inBuffLength);
  48.         filterBuffPtrB := NewPtr(1);
  49.  
  50.         errI := RAMSDOpen(sPortA);        { open modem port - sPortA is already defined }
  51.         IF errI <> noErr THEN
  52.             doMessage('Cannot open Ram serial driver Real A', 'Try turning off Appletalk in Chooser', '', '');
  53.  
  54.         errI := RAMSDOpen(sPortB);        { open printer port - sPortB is already defined }
  55.         IF errI <> noErr THEN
  56.             doMessage('Cannot open Ram serial driver Real B', 'Try turning off AppleTalk in Chooser', '', '');
  57.  
  58.         inRefNumA := AinRefNum;            {driver reference number = -6}
  59.         outRefNumA := AoutRefNum;        {driver reference number = -7}
  60.  
  61.         inRefNumB := BinRefNum;            {driver reference number = -8}
  62.         outRefNumB := BoutRefNum;        {driver reference number = -9}
  63.  
  64.    {set baud rate, parity, etc. for both in and out}
  65.  
  66.         baud := 94;               {1200}
  67.         parity := 0;                  {none}
  68.         dataBits := 3072;       {8}
  69.         stopBits := 16384;      {1}
  70.         serConfig := baud + parity + dataBits + stopBits;
  71.  
  72.         errI := SerReset(inRefNumA, serConfig);        { set modem input }
  73.         errI := SerReset(outRefNumA, serConfig);    { set modem output }
  74.         errI := SerReset(inRefNumB, serConfig);        { set printer input }
  75.         errI := SerReset(outRefNumB, serConfig);        { set modem output }
  76.  
  77.         { set handshaking of ports for xon/xoff }
  78.  
  79.         WITH Hand DO
  80.             BEGIN
  81.                 FXON := 0;
  82.                 FCTS := 0;
  83.                 XON := CHAR(XONCHAR);
  84.                 XOFF := CHAR(XOFFCHAR);
  85.                 ERRS := 0;
  86.                 EVTS := 0;
  87.                 FINX := 1;
  88.             END;
  89.  
  90.         ErrI := SerHShake(inRefNumA, Hand);
  91.         ErrI := SerHShake(inRefNumB, Hand);
  92.  
  93.    {set buffer}
  94.  
  95.         errI := SerSetBuf(inRefNumA, inBuffPtrA, inBuffLength);
  96.         errI := SerSetBuf(inRefNumB, inBuffPtrB, inBuffLength);
  97.  
  98.         { initially set I/O ports to the modem ports }
  99.  
  100.         inRefNum := inRefNumA;
  101.         outRefNum := outRefNumB;
  102.     END;  {Init_serial}
  103.  
  104.     PROCEDURE initall;
  105.         VAR
  106.             err : integer;
  107.     BEGIN
  108.         MoreMasters;               {create 64 more master pointers - for future}
  109.         MoreMasters;
  110.         MaxApplZone;
  111.         InitGraf(@thePort);
  112.         InitFonts;
  113.         FlushEvents(everyEvent, 0);
  114.         InitWindows;
  115.         SetUpMenus;
  116.         init_serial;
  117.         TEInit;
  118.         InitDialogs(NIL);
  119.         HideAll;
  120.         Urgn := newRgn;
  121.         SetCursor(arrow);
  122.         SetRect(dragRect, 4, 24, 508, 338);
  123.         doneFlag := FALSE;
  124.         portA := true;
  125.         row := 1;
  126.         oneCount := 1;
  127.         windowlines := 9;
  128.         column := 1;
  129.         numWindows := 0;
  130.     END;
  131. END.